home *** CD-ROM | disk | FTP | other *** search
/ MacHack 2000 / MacHack 2000.toast / pc / The Hacks / Softshoe / Lisa's Mac Parts / Views / Canvas / PortMap.h < prev   
Text File  |  2000-06-23  |  1KB  |  58 lines

  1. // PortMap.h
  2.  
  3. #ifndef PortMap_h
  4. #define PortMap_h
  5.  
  6. #ifndef Rectangle32_h
  7. #include "Rectangle32.h"
  8. #endif
  9. #ifndef Rectangle_h
  10. #include "Rectangle.h"
  11. #endif
  12.  
  13. class PortMap
  14.   {
  15.     private:
  16.         Rectangle32 offScreen;
  17.         Rectangle onScreen;
  18.     
  19.     public:
  20.         PortMap( const Rectangle32& offScreenArea,
  21.                     const Rectangle& onScreenArea )
  22.           : offScreen( offScreenArea ),
  23.              onScreen( onScreenArea )
  24.           {
  25.             Assert( offScreen.Size() == UPoint32( onScreenArea.Size() ) );
  26.           }
  27.         
  28.         static PortMap Identity( Rectangle r )
  29.           {
  30.             return PortMap( Rectangle32(r), r );
  31.           }
  32.         
  33.         const Rectangle32& OffScreen() const    { return offScreen; }
  34.         const Rectangle& OnScreen() const        { return onScreen; }
  35.         
  36.         int16 HorizontalToScreen( int32 ) const;
  37.         int16 VerticalToScreen( int32 ) const;
  38.         int32 HorizontalFromScreen( int16 ) const;
  39.         int32 VerticalFromScreen( int16 ) const;
  40.         
  41.         PointObject ToScreen( Point32 ) const;
  42.         Point32 FromScreen( PointObject ) const;
  43.         
  44.         Rectangle ToScreen( Rectangle32 ) const;
  45.         Rectangle32 FromScreen( Rectangle ) const;
  46.         
  47.         void RestrictOnScreen( Rectangle r );
  48.         void RestrictOffScreen( Rectangle32 );
  49.  
  50.         void Submap( Rectangle32 );
  51.         void SliceHorizontally( Range32 verticalRange );
  52.         void SliceVertically( Range32 horizontalRange );
  53.  
  54.         void Scroll( Point32 );
  55.   };
  56.  
  57. #endif
  58.